From 96f1db89ee7d3696d27a5bf044ada7942e354fda Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 20 Jul 2024 08:58:39 +0300 Subject: [PATCH] Avoid errors in 'icomplete-vertical-mode' * lisp/minibuffer.el (completion--hilit-from-re): Avoid signaling an error if STRING does not match REGEXP. Fix doc string and indentation. (Bug#72176) --- lisp/minibuffer.el | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 0f6e3518758..baed4edcf89 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -4051,24 +4051,26 @@ details." (defun completion--hilit-from-re (string regexp &optional point-idx) "Fontify STRING using REGEXP POINT-IDX. -`completions-common-part' and `completions-first-difference' are -used. POINT-IDX is the position of point in the presumed \"PCM\" -pattern that was used to generate derive REGEXP from." -(let* ((md (and regexp (string-match regexp string) (cddr (match-data t)))) - (pos (if point-idx (match-beginning point-idx) (match-end 0))) - (me (and md (match-end 0))) - (from 0)) - (while md - (add-face-text-property from (pop md) 'completions-common-part nil string) - (setq from (pop md))) - (if (> (length string) pos) - (add-face-text-property - pos (1+ pos) - 'completions-first-difference - nil string)) - (unless (or (not me) (= from me)) - (add-face-text-property from me 'completions-common-part nil string)) - string)) +Uses `completions-common-part' and `completions-first-difference' +faces to fontify STRING. +POINT-IDX is the position of point in the presumed \"PCM\" pattern +from which REGEXP was generated." + (let* ((md (and regexp (string-match regexp string) (cddr (match-data t)))) + (pos (if point-idx (match-beginning point-idx) (match-end 0))) + (me (and md (match-end 0))) + (from 0)) + (while md + (add-face-text-property from (pop md) + 'completions-common-part nil string) + (setq from (pop md))) + (if (and (numberp pos) (> (length string) pos)) + (add-face-text-property + pos (1+ pos) + 'completions-first-difference + nil string)) + (unless (or (not me) (= from me)) + (add-face-text-property from me 'completions-common-part nil string)) + string)) (defun completion--flex-score-1 (md-groups match-end len) "Compute matching score of completion. -- 2.30.2